CocoaPods 升级
//最新源 https://gems.ruby-china.org
From: http://www.jianshu.com/p/935f156b7499
简述
当我们自己电脑上的CocoaPods版本过低,但是别的项目使用的CocoaPods版本过高的时候,你如果通过pod update获取Pods中的内容,就会提示下面的问题:
[!] The 项目
repo requires CocoaPods 1.0.0 -(currently using 0.39.0)
这就是提醒你项目用的CocoaPods的版本是1.0.0,你现在自己的版本是0.39.0。需要升级CocoaPods,可以通过pod –version查看你当前的CocoaPods版本号。
升级
依次使用下面的命令执行更新:(因为一些资源被墙了,步骤2,3是为了国内访问,4是让你确认2,3的操作是否正常执行。当然如果你已经安装了vpn可以访问国外的网站,2,3,4步骤省略)
|
|
更新
如果你不加版本号应该会给你安装最新版
$ sudo gem install cocoapods
我想要更新到1.1.1,所以我执行以下命令
$ sudo gem install cocoapods -v 1.1.1
如果你想尝试预览版,那就用以下命令
$ sudo gem install cocoapods –pre
问题
现实总是不让你开心,各种各样的问题都会出现,今天我在更新pod的时候就遇到了下面的问题。
$ sudo gem install cocoapods -v 1.1.1
Password:
Fetching: cocoapods-core-1.1.1.gem (100%)
Successfully installed cocoapods-core-1.1.1
Fetching: cocoapods-1.1.1.gem (100%)
ERROR: While executing gem … (Errno::EPERM)
Operation not permitted - /usr/bin/pod
从提示可以看出是因为没有权限在/usr/bin/这个目录写入,经过搜索发现原因是OS X 10.11的新安全机制:System Integrity Protection也叫作:rootless,这个默认的安全机制用于保护下面三个目录,所以无法在/usr/bin/中安装pod
/System
/sbin
/usr (with the exception of /usr/local subdirectory)
这个问题网上给出了两种解决方案,一个是关闭这个安全机制,另一个是绕过这个机制安装在别的位置。
关闭该机制
$ sudo nvram boot-args=”rootless=0”; sudo reboot
执行该命令后会重启电脑,保证设置生效
然后再进行正常的安装
$ sudo gem install cocoapods
绕开该机制
$ sudo gem install -n /usr/local/bin cocoapods
这样呢就把pod安装在了/usr/local/bin目录下
对于这两种方法,第二种会好一些,因为自己的可执行程序确实应该放在/usr/local/bin目录下,而且苹果既然有这项设置那肯定有他的道理,没有必要非要关闭这个设置,多个防护多点安全。
```
如果一切顺利,执行完上面的操作,你的CocoaPods就更新完了。但是有时候会碰到一下问题:
ERROR:While executing gem … (Errno::EPERM)
Operation not permitted - /usr/bin/xcodeproj
如果遇到此问题可以将上面步骤5中的命令改为下面的命令
sudo gem install -n /usr/local/bin cocoapods。
参考:http://www.cnblogs.com/brycezhang/p/3675670.html
http://stackoverflow.com/questions/30812777/cannot-install-cocoa-pods-after-uninstalling-results-in-error/30851030#30851030
install_url
to use ShareThis. Please set it in _config.yml
.